package com.cmc.cloud.cmclink.doc.vo.vgm;

import com.cmc.cloud.cmclink.doc.configuration.CustomLocalDateTimeSerializer;
import com.cmc.cloud.cmclink.doc.configuration.LocalDateTimeSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * VMG信息Response VO
 *
 * @author codegen
 */
@Schema(description = "管理后台 - VMG信息 Response VO")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class VgmRespVO {

    @Schema(description = "主键", example = "7782")
    private Long id;

    @Schema(description = "创建时间")
    @JsonSerialize(using = CustomLocalDateTimeSerializer.class)
    private LocalDateTime createTime;

    @Schema(description = "创建人")
    private String creator;

    @Schema(description = "更新时间")
    @JsonSerialize(using = CustomLocalDateTimeSerializer.class)
    private LocalDateTime updateTime;

    @Schema(description = "更信人")
    private String updater;

    @Schema(description = "港口")
    private String currentPort;

    @Schema(description = "船名")
    private String vesselCode;

    @Schema(description = "航次")
    private String voyage;

    @Schema(description = "提单号")
    private String blNo;

    @Schema(description = "箱号")
    private String cntrNo;

    @Schema(description = "重量")
    private BigDecimal weight;

    @Schema(description = "称重方式")
    private String typeCode;

    @Schema(description = "称重地点")
    private String address;

    @Schema(description = "称重时间")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime time;

    @Schema(description = "验证签名")
    private String signature;

    @Schema(description = "数据来源网厅web 、edi、api、手动manual")
    private String dataSource;

    @Schema(description = "文件id", example = "4508")
    private Long fileId;

}
